.TH DEVLINK\-PORT 8 "14 Mar 2016" "iproute2" "Linux"
.SH NAME
devlink-port \- devlink port configuration
.SH SYNOPSIS
.sp
.ad l
.in +8
.ti -8
.B devlink
.RI "[ " OPTIONS " ]"
.B port
.RI  " { " COMMAND " | "
.BR help " }"
.sp

.ti -8
.IR OPTIONS " := { "
\fB\-V\fR[\fIersion\fR] |
\fB\-n\fR[\fIno-nice-names\fR] }

.ti -8
.BR "devlink port set "
.IR DEV/PORT_INDEX
.RI "[ "
.BR type " { " eth " | " ib " | " auto " }"
.RI "]"

.ti -8
.BR "devlink port split "
.IR DEV/PORT_INDEX
.BR count
.IR COUNT

.ti -8
.BR "devlink port unsplit "
.IR DEV/PORT_INDEX

.ti -8
.B devlink port show
.RI "[ " DEV/PORT_INDEX " ]"

.ti -8
.B devlink port health
.RI "{ " show " | " recover " | " diagnose " | " dump " | " set " }"

.ti -8
.BI "devlink port add"
.RB "{"
.IR "DEV | DEV/PORT_INDEX"
.RB "} "
.RB "[ " flavour
.IR FLAVOUR " ]"
.RB "[ " pfnum
.IR PFNUMBER " ]"
.RB "[ " sfnum
.IR SFNUMBER " ]"
.RB "[ " controller
.IR CNUM " ]"
.br

.ti -8
.B devlink port del
.IR DEV/PORT_INDEX

.ti -8
.BR "devlink port function set "
.IR DEV/PORT_INDEX
.RI "[ "
.BR "hw_addr "
.RI "ADDR ]"
.RI "[ "
.BR state " { " active " | " inactive " }"
.RI "]"
.RI "[ "
.BR roce " { " enable " | " disable " }"
.RI "]"
.RI "[ "
.BR migratable " { " enable " | " disable " }"
.RI "]"
.RI "[ "
.BR ipsec_crypto " { " enable " | " disable " }"
.RI "]"
.RI "[ "
.BR ipsec_packet " { " enable " | " disable " }"
.RI "]"

.ti -8
.BR "devlink port function rate "
.RI "{ " show " | " set " | " add " | " del " | " help " }"

.ti -8
.B devlink dev param set
.I DEV/PORT_INDEX
.B name
.I PARAMETER
.B value
.I VALUE
.BR cmode " { " runtime " | " driverinit " | " permanent " } "

.ti -8
.B devlink dev param show
[
.I DEV/PORT_INDEX
.B name
.I PARAMETER
]

.ti -8
.B devlink port help

.SH "DESCRIPTION"
.SS devlink port set - change devlink port attributes

.PP
.I "DEV/PORT_INDEX"
- specifies the devlink port to operate on.

.in +4
Format is:
.in +2
BUS_NAME/BUS_ADDRESS/PORT_INDEX

.TP
.BR type " { " eth " | " ib " | " auto " } "
set port type

.I eth
- Ethernet

.I ib
- Infiniband

.I auto
- autoselect

.SS devlink port split - split devlink port into more

.PP
.I "DEV/PORT_INDEX"
- specifies the devlink port to operate on.

.TP
.BI count " COUNT"
number of ports to split to.

.SS devlink port unsplit - unsplit previously split devlink port
Could be performed on any split port of the same split group.

.PP
.I "DEV/PORT_INDEX"
- specifies the devlink port to operate on.

.SS devlink port show - display devlink port attributes

.PP
.I "DEV/PORT_INDEX"
- specifies the devlink port to show.
If this argument is omitted all ports are listed.

.SS devlink port health - devlink health reporting and recovery
Is an alias for
.BR devlink-health (8).

.ti -8
.SS devlink port add - add a devlink port
.PP
.I "DEV"
- specifies the devlink device to operate on. or

.PP
.I "DEV/PORT_INDEX"
- specifies the devlink port index to use for the requested new port.
This is optional. When omitted, driver allocates unique port index.

.TP
.BR flavour " { " pcipf " | " pcisf " } "
set port flavour

.I pcipf
- PCI PF port

.I pcisf
- PCI SF port

.TP
.BI pfnum " PFNUMBER "
Specifies PCI pfnumber to use on which a SF device to create

.TP
.BI sfnum " SFNUMBER "
Specifies sfnumber to assign to the device of the SF.
This field is optional for those devices which supports auto assignment of the
SF number.

.TP
.BI controller " CNUM "
Specifies controller number for which the SF port is created.
This field is optional. It is used only when SF port is created for the
external controller.

.ti -8
.SS devlink port function set - Set the port function attribute(s).

.PP
.I "DEV/PORT_INDEX"
- specifies the devlink port to operate on.

.TP
.BI hw_addr " ADDR"
Hardware address of the function to set. This is a Ethernet MAC address when
port type is Ethernet.

.TP
.BR state " { " active " | " inactive " } "
New state of the function to change to.

.I active
- Once configuration of the function is done, activate the function.

.I inactive
- To inactivate the function and its device(s), set to inactive.

.TP
.BR roce " { " enable " | " disable  " } "
Set the RoCE capability of the function.

.TP
.BR migratable " { " enable " | " disable  " } "
Set the migratable capability of the function.

.TP
.BR ipsec_crypto " { " enable " | " disable  " } "
Set the IPsec crypto offload capability of the function. Controls XFRM state
crypto operation (Encrypt/Decrypt) offload.

.TP
.BR ipsec_packet " { " enable " | " disable  " } "
Set the IPsec packet offload capability of the function. Controls XFRM state
and policy offload (Encrypt/Decrypt operation and IPsec encapsulation).

.ti -8
.SS devlink port del - delete a devlink port
.PP
.I "DEV/PORT_INDEX"
- specifies the devlink port to delete.

.ti -8
.SS devlink port param set  - set new value to devlink port configuration parameter
.PP
.I "DEV/PORT_INDEX"
- specifies the devlink port to operate on.

.TP
.BI name " PARAMETER"
Specify parameter name to set.

.TP
.BI value " VALUE"
New value to set.

.TP
.BR cmode " { " runtime " | " driverinit " | " permanent " } "
Configuration mode in which the new value is set.

.I runtime
- Set new value while driver is running. This configuration mode doesn't require any reset to apply the new value.

.I driverinit
- Set new value which will be applied during driver initialization. This configuration mode requires restart driver by devlink reload command to apply the new value.

.I permanent
- New value is written to device's non-volatile memory. This configuration mode requires hard reset to apply the new value.

.SS devlink port param show - display devlink port supported configuration parameters attributes

.PP
.I "DEV/PORT_INDEX"
- specifies the devlink port to operate on.

.B name
.I PARAMETER
Specify parameter name to show.
If this argument, as well as port index, are omitted - all parameters supported by devlink device ports are listed.

.SS devlink port function rate - manage devlink rate objects
Is an alias for
.BR devlink-rate (8).

.SH "EXAMPLES"
.PP
devlink port show
.RS 4
Shows the state of all devlink ports on the system.
.RE
.PP
devlink port show pci/0000:01:00.0/1
.RS 4
Shows the state of specified devlink port.
.RE
.PP
devlink port set pci/0000:01:00.0/1 type eth
.RS 4
Set type of specified devlink port to Ethernet.
.RE
.PP
devlink port split pci/0000:01:00.0/1 count 4
.RS 4
Split the specified devlink port into four ports.
.RE
.PP
devlink port unsplit pci/0000:01:00.0/1
.RS 4
Unplit the specified previously split devlink port.
.RE
.PP
devlink port health show
.RS 4
Shows status and configuration of all supported reporters registered on all devlink ports.
.RE
.PP
devlink port health show pci/0000:01:00.0/1 reporter tx
.RS 4
Shows status and configuration of tx reporter registered on pci/0000:01:00.0/1 devlink port.
.RE
.PP
devlink port add pci/0000:06:00.0 flavour pcisf pfnum 0 sfnum 88
.RS 4
Add a devlink port of flavour PCI SF on PCI PF having number 0 with SF number 88.
To make use of the function an example sequence is to add a port, configure the
function attribute and activate the function. Once function usage is completed,
inactivate the function and finally delete the port. When there is desire to
reuse the port without deletion, it can be reconfigured and activated again when
function is in inactive state and function's operational state is detached.
.RE
.PP
devlink port del pci/0000:06:00.0/1
.RS 4
Delete previously created devlink port. It is recommended to first deactivate
the function if the function supports state management.
.RE
.PP
devlink port function set pci/0000:01:00.0/1 hw_addr 00:00:00:11:22:33
.RS 4
Configure hardware address of the PCI function represented by devlink port.
If the port supports change in function state, hardware address must be configured
before activating the function.
.RE
.PP
devlink port function set pci/0000:01:00.0/1 state active
.RS 4
Activate the function. This will initiate the function enumeration and driver loading.
.RE
.PP
devlink port function set pci/0000:01:00.0/1 state inactive
.RS 4
Deactivate the function. This will initiate the function teardown which results
in driver unload and device removal.
.RE
.PP
devlink port function set pci/0000:01:00.0/1 roce enable
.RS 4
This will enable the RoCE functionality of the function.
.RE
.PP
devlink port function set pci/0000:01:00.0/1 migratable enable
.RS 4
This will enable the migratable functionality of the function.
.RE
.PP
devlink port function set pci/0000:01:00.0/1 ipsec_crypto enable
.RS 4
This will enable the IPsec crypto offload functionality of the function.
.RE
.PP
devlink port function set pci/0000:01:00.0/1 ipsec_packet enable
.RS 4
This will enable the IPsec packet offload functionality of the function.
.RE
.PP
devlink port function set pci/0000:01:00.0/1 hw_addr 00:00:00:11:22:33 state active
.RS 4
Configure hardware address and also active the function. When a function is
activated together with other configuration in a single command, all the
configuration is applied first before changing the state to active.
.RE
.PP
devlink dev param show
.RS 4
Shows (dumps) all the port parameters across all the devices registered in the devlink.
.RE
.PP
devlink dev param set pci/0000:01:00.0/1 name internal_error_reset value true cmode runtime
.RS 4
Sets the parameter internal_error_reset of specified devlink port (#1) to true.
.RE
.PP
devlink port add pci/0000:06:00.0 flavour pcisf pfnum 0 sfnum 88 controller 1
.RS 4
Add a devlink port of flavour PCI SF on controller 1 which has PCI PF of number
0 with SF number 88. To make use of the function an example sequence is to add
a port, configure the function attribute and activate the function. Once
the function usage is completed, deactivate the function and finally delete
the port. When there is desire to reuse the port without deletion, it can be
reconfigured and activated again when function is in inactive state and
function's operational state is detached.
.RE

.SH SEE ALSO
.BR devlink (8),
.BR devlink-dev (8),
.BR devlink-sb (8),
.BR devlink-monitor (8),
.BR devlink-health (8),
.br

.SH AUTHOR
Jiri Pirko <jiri@mellanox.com>
